import request from '@/utils/request'

// 查询农产品分页列表
export function pageQueryProduce(query) {
  return request({
    url: '/yjnb/produce/page',
    method: 'get',
    params: query
  })
}

// 查询农产品列表
export function listProduce(query) {
  return request({
    url: '/yjnb/produce/list',
    method: 'get',
    params: query
  })
}

// 查询农产品详细
export function getProduce(id) {
  return request({
    url: '/yjnb/produce/getByid/' + id,
    method: 'get'
  })
}

// 新增农产品
export function addProduce(data) {
  return request({
    url: '/yjnb/produce/add',
    method: 'post',
    data: data
  })
}

// 修改农产品
export function updateProduce(data) {
  return request({
    url: '/yjnb/produce/update',
    method: 'put',
    data: data
  })
}

// 删除农产品（单个或批量）
export function delProduce(ids) {
  console.log('🔴 delProduce 被调用，参数 ids:', ids);

  // 确保传入的是数组
  const idList = Array.isArray(ids) ? ids : [ids];
  console.log('🔴 转换为数组 idList:', idList);

  // 过滤掉空值
  const validIds = idList.filter(id => id !== null && id !== undefined);
  console.log('🔴 过滤后 validIds:', validIds);

  if (validIds.length === 0) {
    console.log('🔴 validIds为空，返回reject');
    return Promise.reject(new Error('请选择要删除的产品'));
  }

  // 拼接URL参数：ids=1&ids=2&ids=3
  const queryString = validIds.map(id => `ids=${id}`).join('&');
  console.log('🔴 拼接的URL参数:', queryString);

  const url = `/yjnb/produce/deletes?${queryString}`;
  console.log('🔴 完整URL:', url);
  console.log('🔴 准备发起DELETE请求...');

  return request({
    url: url,
    method: 'delete'
  })
}

// 批量修改产品状态（单个或批量）
export function updateProduceStatus(ids, status) {
  // 确保传入的是数组
  const idList = Array.isArray(ids) ? ids : [ids];

  // 过滤掉空值
  const validIds = idList.filter(id => id !== null && id !== undefined);

  if (validIds.length === 0) {
    return Promise.reject(new Error('请选择要操作的产品'));
  }

  // 拼接URL参数：ids=1&ids=2&ids=3&status=1
  const queryString = validIds.map(id => `ids=${id}`).join('&') + `&status=${status}`;

  return request({
    url: `/yjnb/produce/updateStatus?${queryString}`,
    method: 'put'
  })
}

// 批量修改产品推荐状态（单个或批量）
export function updateProduceRecommend(ids, isRecommend) {
  // 确保传入的是数组
  const idList = Array.isArray(ids) ? ids : [ids];

  // 过滤掉空值
  const validIds = idList.filter(id => id !== null && id !== undefined);

  if (validIds.length === 0) {
    return Promise.reject(new Error('请选择要操作的产品'));
  }

  // 拼接URL参数：ids=1&ids=2&ids=3&isRecommend=1
  const queryString = validIds.map(id => `ids=${id}`).join('&') + `&isRecommend=${isRecommend}`;

  return request({
    url: `/yjnb/produce/updateRecommend?${queryString}`,
    method: 'put'
  })
}

// 上架
export function pushFarmProduce(data) {
  return request({
    url:"/yjnb/produce/pushFarmProduce",
    method: "post",
    data: data,
    withLoading: true,
  });
}
// 下架
export function unpushFarmProduce(data) {
  return request({
    url:"/yjnb/produce/unpushFarmProduce",
       method: "post",
    data: data,
    withLoading: true,
  });
}
// 推荐
export function recommendFarmProduce(data) {
  return request({
    url:"/yjnb/produce/recommendFarmProduce",
    method: "post",
    data: data,
    withLoading: true,
  });
}
// 取消推荐
export function unrecommendFarmProduce(data) {
  return request({
    url:"/yjnb/produce/unrecommendFarmProduce",
    method: "post",
    data: data,
    withLoading: true,
  });
}

// 导出产品数据
export function exportProduce() {
  return request({
    url: '/common/excel/product/export',
    method: 'get',
    responseType: 'blob'
  })
}
